﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыОбменаЭД
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"a081b18d-7777-4163-9abc-3dd611ba705f\", \"Представление\":\"ЧерезКаталог\"}")]
		ЧерезКаталог = 0,//Через каталог
	///<summary>
	///Через оператора электронного документооборота Такском
	///</summary>
		[EnumMember(Value = "{\"Ссылка\":\"5c57ab5f-5b22-4bfa-8734-1c6e91f15dd6\", \"Представление\":\"ЧерезОператораЭДОТакском\"}")]
		ЧерезОператораЭДОТакском = 1,//Через оператора ЭДО (Такском)
		[EnumMember(Value = "{\"Ссылка\":\"3bf22ae8-f688-4e41-ad15-97e0a1efaac8\", \"Представление\":\"ЧерезЭлектроннуюПочту\"}")]
		ЧерезЭлектроннуюПочту = 2,//Через электронную почту
	}
	public static partial class СпособыОбменаЭД_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid ЧерезКаталог = new Guid("d63dbc9a-ba11-5f70-4163-7777a081b18d");//Через каталог
		///<summary>
		///Через оператора электронного документооборота Такском
		///</summary>
		public static readonly Guid ЧерезОператораЭДОТакском = new Guid("6e1c3487-f191-d65d-4bfa-5b225c57ab5f");//Через оператора ЭДО (Такском)
		public static readonly Guid ЧерезЭлектроннуюПочту = new Guid("e09715ad-efa1-c8aa-4e41-f6883bf22ae8");//Через электронную почту
		public static СпособыОбменаЭД Получить(this СпособыОбменаЭД Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыОбменаЭД Получить(this СпособыОбменаЭД Значение, Guid Ссылка)
		{
			if(Ссылка == ЧерезКаталог)
			{
				return СпособыОбменаЭД.ЧерезКаталог;
			}
			else if(Ссылка == ЧерезОператораЭДОТакском)
			{
				return СпособыОбменаЭД.ЧерезОператораЭДОТакском;
			}
			else if(Ссылка == ЧерезЭлектроннуюПочту)
			{
				return СпособыОбменаЭД.ЧерезЭлектроннуюПочту;
			}
			return СпособыОбменаЭД.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыОбменаЭД Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыОбменаЭД Значение)
		{
			switch (Значение)
			{
				case СпособыОбменаЭД.ЧерезКаталог: return ЧерезКаталог;
				case СпособыОбменаЭД.ЧерезОператораЭДОТакском: return ЧерезОператораЭДОТакском;
				case СпособыОбменаЭД.ЧерезЭлектроннуюПочту: return ЧерезЭлектроннуюПочту;
			}
			return Guid.Empty;
		}
	}
}